include 'win64wxp.inc' ; you can simply switch between win32ax, win32wx, win64ax and win64wx here
.con start

.const
  argucount du "argc = %d",10,13,0
  pressakey du 10,13,"[Press ESC or SPACE to exit]",10,13,0
  align 16

.code

proc start
     local qalign:QWORD, argv:QWORD, argc:DWORD

     invoke  GetCommandLine
     lea     r8, [argc]
     invoke  CommandLineToArgvW, rax, r8
     mov     [argv], rax
     fastcall [wprintf], argucount, [argc]

     call    WaitKey
     invoke  ExitProcess, 0
     return
endp

proc WaitKey
     local qalign:QWORD

     fastcall [wprintf], pressakey

     .repeat
	     invoke  Sleep, 10
	     invoke  GetAsyncKeyState, VK_ESCAPE
	     push    rax
	     invoke  GetAsyncKeyState, VK_SPACE
	     pop     rcx
	     or      rax, rcx
	     and     rax, $8000
     .until  rax <> NULL
     return
endp

.idata
library_sys

